1. Field of the Invention
This invention relates to data replication, and more particularly to apparatus and methods for creating point-in-time copies of data while minimizing data duplication.
2. Background of the Invention
Data replication functions such as IBM's Flash Copy, Hitachi's ShadowImage, or the like, may be used to generate nearly instantaneous point-in-time copies of logical volumes or data sets. Among other uses, these point-in-time copies may be used for disaster recovery and business continuity purposes. IBM's Flash Copy in particular creates a point-in-time copy by establishing a relationship (or “mapping”) between a source volume and a target volume. Once this relationship is established, data may be read from either the source volume or target volume. A target bit map associated with a target volume keeps track of which data tracks have actually been copied from the source volume to the target volume. In certain cases, volumes may be arranged in a cascaded configuration such that certain volumes function as both targets and sources. In other cases, volumes may be arranged in a flat (or “multi-target”) configuration such that a source volume has relationships with multiple target volumes.
Nevertheless, I/O performance can be impacted significantly as the number of volumes increases in either a cascaded or multi-target configuration. For example, in a cascaded configuration, a write to a source volume may need to wait for data to be copied between various volumes in the cascade before the write can be performed. Thus, the larger number of volumes in the cascade, the larger number of copies that need to occur before data can be written to the source volume. Similarly, in a multi-target configuration, a write to a source volume may need to wait for data to be copied to each connected target before the write can be performed. The larger number of volumes in the multi-target configuration, the larger number of copies that need to occur before data can be written to the source volume. This can make a write to a source volume very slow. For this reason, current Flash Copy implementations typically only allow a limited number of targets in a multi-target configuration to keep the performance impact within an acceptable range.
In view of the foregoing, what are needed are methods to reduce the performance impact of having large numbers of volumes in cascaded or multi-target configurations. More specifically, methods are needed to reduce data duplication in cascaded or multi-target configurations when performing writes. Yet further needed are methods to more efficiently perform reads in cascaded or multi-target configurations.